//导入request请求工具类
import {
  getBaseUrl,
  requestUtil
} from '../../utils/requestUtil.js';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    baseUrl: '',
    cart: [],
    allChecked: false,
    totalPrice: 0,
    totalNum: 0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const baseUrl = getBaseUrl();
    this.setData({
      baseUrl
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    console.log("show")
    const cart = wx.getStorageSync('cart') || [];
    this.setCart(cart); //传入下面封装的setCart
  },

  //选中事件处理
  handleCheckbox(e) {
    console.log(e)
    const { id } = e.currentTarget.dataset;
    let { cart } = this.data;
    // 下面是简写，参数v每次遍历v，方法里说id里面遍历id，返回到就是索引值
    let index = cart.findIndex(v => v.id === id);
    console.log(index)
    // 取反
    cart[index].checked =!cart[index].checked;
    this.setCart(cart); //每次勾选获取取消勾选时合计的价格会相应的加减
  },

  //全选事件处理
  handleAll() {
    let { cart, allChecked } = this.data
    allChecked =!allChecked //取反
    cart.forEach(v => v.checked = allChecked);
    this.setCart(cart);
  },

  //数量加减
  handleJiaJian(e) {
    //1、获取id和operation
    //operation是用于加一和减一
    const { id, operation } = e.currentTarget.dataset;
    console.log(id, operation)
    let { cart } = this.data;
    // 下面是简写，参数v每次遍历v，方法里说id里面遍历id，返回到就是索引值
    let index = cart.findIndex(v => v.id === id);
    if (cart[index].num === 1 && operation === -1) {
      wx.showModal({
        title: '系统提示',
        content: '是否确认删除',
        cancelColor: 'cancelColor',
        complete: (res) => {
          // 取消
          if (res.cancel) {

          }
          // 确认删除
          if (res.confirm) {
            cart.splice(index, 1);
            this.setCart(cart);  //重新计算
          }
        }
      })
    } else {
      //对指定商品的num属性加1或者减1
      cart[index].num += operation;
      this.setCart(cart);  //重新计算
    }
  },
  //点击结算
  handlePay() {
    const { totalNum } = this.data;
    if (totalNum === 0) {
      wx.showToast({
        title: '请选择商品',
        icon: 'none'
      })
      return;
    }
    wx.navigateTo({
      url: '/pages/pay/index'
    })
  },

  //setCart  设置购物车状态 重新计算 底部工具栏的全选 总价 总数量 重新设置缓存
  setCart(cart) {
    let allChecked = true;
    let totalPrice = 0;
    let totalNum = 0;
    cart.forEach(v => {
      if (v.checked) {
        totalPrice += v.price * v.num;
        totalNum += v.num
      } else {
        allChecked = false
      }
    })
    allChecked = cart.length != 0? allChecked : false;
    // 合计时保留两位小数
    totalPrice = parseFloat(totalPrice.toFixed(2));
    this.setData({
      cart,
      allChecked,
      totalNum,
      totalPrice
    })
    //cart设置到缓存中
    wx.setStorageSync('cart', cart)
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})